﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;

namespace NFine.Domain.Entity.BusinessManage
{
    public class _SalaryChangeTypeClass
    {
        private _SalaryChangeTypeClass() { }

        public decimal 公司进入一个点位 { get; set; }

        public decimal 晋升消费组经理 { get; set; }

        public decimal 消费组经理晋升经营组新组员 { get; set; }
        public decimal 经营组经理晋升经营组新组员 { get; set; }

        public decimal 晋升经营组经理 { get; set; }

        public decimal 经营组进入新组员 { get; set; }

        public decimal 经营组进入第八个新组员 { get; set; }

        public decimal 第一轮金额 { get; set; }

        public decimal 福利车奖励 { get; set; }
        public decimal 福利房奖励 { get; set; }
        public decimal 福利车累计 { get; set; }
        public decimal 福利房累计 { get; set; }
        public decimal 省级代理 { get; set; }
        public decimal 市级代理 { get; set; }
        public decimal 区县级代理 { get; set; }
        public decimal 进入复投累计金额 { get; set; }

        #region 不用赋值的名字

        public string 管理奖收入 { get; } = nameof(管理奖收入);
        public string 个人所得税 { get; } = nameof(个人所得税);
        public string 个人孵化基金 { get; } = nameof(个人孵化基金);
        public string 公司孵化基金 { get; } = nameof(公司孵化基金);
        public string 进入复投账户 { get; } = nameof(进入复投账户);

        public string 用户提现 { get; } = nameof(用户提现);

        public string 用户转账 { get; } = nameof(用户转账);

        public string 用户充值 { get; } = nameof(用户充值);

        public string 用户扣费 { get; } = nameof(用户扣费);

        public string 提现手续费 { get; } = nameof(提现手续费);
        public string 省代理分成 { get; } = nameof(省代理分成);
        public string 市代理分成 { get; } = nameof(市代理分成);
        public string 区县代理分成 { get; } = nameof(区县代理分成);
        public string 省代理赠送15个点位 { get; } = nameof(省代理赠送15个点位);
        public string 市代理赠送7个点位 { get; } = nameof(市代理赠送7个点位);
        public string 区县代理赠送7个点位 { get; } = nameof(区县代理赠送7个点位);
        public string 省代理推荐奖励 { get; } = nameof(省代理推荐奖励);
        public string 市代理推荐奖励 { get; } = nameof(市代理推荐奖励);
        public string 区县代理推荐奖励 { get; } = nameof(区县代理推荐奖励);

        #endregion


    }

    public static class SalaryChangeType
    {

        public static _SalaryChangeTypeClass TypeValues
        {
            get
            {
                string key = "NFine.Domain.Entity.BusinessManage.SalaryChangeType";
                var tvs = HttpRuntime.Cache.Get(key) as _SalaryChangeTypeClass;
                var lockObj = "";
                lock (lockObj)
                {
                    if (tvs == null)
                    {
                        var jsonfile = HttpRuntime.AppDomainAppPath + System.Configuration.ConfigurationManager.AppSettings["SalaryChangeTypeJson"];
                        string jsonObj = System.IO.File.ReadAllText(jsonfile);
                        tvs = Code.Json.ToObject<_SalaryChangeTypeClass>(jsonObj);
                        HttpRuntime.Cache.Insert(key, tvs, new System.Web.Caching.CacheDependency(jsonfile));
                    }
                }
                return tvs;
            }
        }
    }


}
